/* eslint-disable @typescript-eslint/no-explicit-any */
import { createModel } from "@rematch/core"
// import { RootModel } from "./models"


// eslint-disable-next-line @typescript-eslint/no-explicit-any
const initState :any = {
  isCirculate:false, // 是否单曲循环
  isAutoNext:false, // 是否自动下一首
};

//创建一个 model（类似 redux-toolkit 的 slice），包括一个业务的初始状态、状态处理和变更后的影响
//最核心的地方 **
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const music = createModel<any> () ({
  name: 'music',
  state: initState,
  //reducers 需要是纯函数：只依赖参数进行计算，不使用外部数据
  reducers: {
      //与 toolkit 的 slice 不同，参数直接是 payload，更简单
      updataCirculate: (state: any, Circulate: boolean) => {
          //返回新状态
          return {
              ...state,
              isCirculate: Circulate
          };
      },
      updataAutoNext: (state: any, AutoNext: boolean) => {
          //返回新状态
          return {
              ...state,
              isAutoNext: AutoNext
          };
      },
      // deleteTodo: (state: any, payload: string) => {
      //     const todos = state.todos.filter((item: any, index: number)=> {
      //         return item.text !== payload
      //     });
          
      //     return {
      //         ...state,
      //         todos
      //     }
      // }
  },
})